﻿/***************************************************************************
    Copyright (c) Microsoft Corporation. All rights reserved.
    This code is licensed under the Visual Studio 
    Visualization and Modeling SDK license terms.

    THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
    ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
    IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
    PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
***************************************************************************/
namespace Microsoft.VisualStudio.ArchitectureTools.CodeRepositoryQuery
{
    /// <summary>
    /// Abstraction common to Assembly and AssemblyReference
    /// </summary>
    public interface IAssembly
    {
        /// <summary>
        /// Name of the assembly
        /// </summary>
        string Name { get; set; }

        /// <summary>
        /// Version major
        /// </summary>
        int VersionMajor { get; set; }

        /// <summary>
        /// Version minor
        /// </summary>
        int VersionMinor { get; set; }

        /// <summary>
        /// Revision number
        /// </summary>
        int VersionRevision { get; set; }

        /// <summary>
        /// Build number
        /// </summary>
        int VersionBuild { get; set; }

        /// <summary>
        /// Culture of the assembly (can be null)
        /// </summary>
        string Culture { get; set; }

        /// <summary>
        /// Public hash token for the assembly
        /// </summary>
        byte[] PublicKeyToken { get; set; }

        /// <summary>
        /// Assembly strong name
        /// </summary>
        string AssemblyName { get; set; }
    }
}
